const { createClient } = require('@supabase/supabase-js')
const bcrypt = require('bcryptjs')

// 从环境变量读取配置
require('dotenv').config({ path: '.env.local' })

const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL
const supabaseServiceKey = process.env.SUPABASE_SERVICE_ROLE_KEY

if (!supabaseUrl || !supabaseServiceKey) {
  console.error('❌ 缺少 Supabase 配置，请检查 .env.local 文件')
  process.exit(1)
}

const supabase = createClient(supabaseUrl, supabaseServiceKey, {
  auth: {
    autoRefreshToken: false,
    persistSession: false
  }
})

async function createAdminUser() {
  try {
    const username = 'admin'
    const password = 'admin123'
    
    console.log('🔐 正在创建管理员用户...')
    
    // 检查用户是否已存在
    const { data: existingUser } = await supabase
      .from('vertu_sys_users')
      .select('*')
      .eq('username', username)
      .single()
    
    if (existingUser) {
      console.log('⚠️  管理员用户已存在')
      console.log('用户名:', username)
      console.log('如需重置密码，请手动删除数据库中的记录后重新运行此脚本')
      return
    }
    
    // 加密密码
    const hashedPassword = await bcrypt.hash(password, 12)
    
    // 创建用户
    const { data, error } = await supabase
      .from('vertu_sys_users')
      .insert([
        {
          username: username,
          password: hashedPassword
        }
      ])
      .select()
    
    if (error) {
      console.error('❌ 创建用户失败:', error)
      return
    }
    
    console.log('✅ 管理员用户创建成功!')
    console.log('用户名:', username)
    console.log('密码:', password)
    console.log('⚠️  请及时修改默认密码!')
    
  } catch (error) {
    console.error('❌ 创建管理员用户时发生错误:', error)
  }
}

createAdminUser()